﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Security;

namespace Application.Services
{
    public interface IAppMembershipProvider
    {

         
          bool ChangePassword(string username, string oldPassword, string newPassword);
        
          bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer);
        
          Domaine.Entity.Membership AddNewMember( Domaine.Entity.Membership newMember);
        
          bool RemoveMember(string username );
        
          IEnumerable<Domaine.Entity.Membership> FindMembersByEmail(string emailToMatch, int pageIndex, int pageSize );

          IEnumerable<Domaine.Entity.Membership> FindMembersByName(string usernameToMatch, int pageIndex, int pageSize );

          IEnumerable<Domaine.Entity.Membership> GetPagedMembers(int pageIndex, int pageSize );
          int GetNumberOfUsersOnline();
        
          string GetPassword(string username, string answer);

          Domaine.Entity.Membership GetMemberByID(Guid id, bool userIsOnline);

          Domaine.Entity.Membership GetMemberByName(string username, bool userIsOnline);
         
          string ResetPassword(string username, string answer);
        
          bool UnlockUser(string userName);
          void UpdateUser(Domaine.Entity.Membership member);
          bool ValidateUser(string username, string password);



    }
}
